キッシュちゃんの表情アニメーションをAvatars 3.0に時代に設定する
from キッシュちゃんをVRChatのアバターとして利用する
試した日:2022/6/15ごろ
Avatars 3.0には2.0時代のCustomOverrideEmptyがないのでアニメーションオーバーライドで表情を設定できない
VRChat Avatars3.0のVRCAvatarDescriptor - がとーしょこらの技術録(旧)
筆者はこの時代のアバターをセットアップしたことがないので細部はわからない
Avatars 3.0の表情アニメーション設定の大雑把な手順
1. AnimatorControllerをのstateに表情アニメーションを割り当てる
アバターの表情混ざって溶けるのでアニメーションの修正等をする
2. Playable LayersのFXにAnimatorControllerを登録する
Avatars3.0では左手右手それぞれに別のアニメーションを設定することができます。
LeftHandレイヤーをクリックしてFistステートをクリックするとInspectorのMotionに
orion_face_smileというアニメーションが設定されていることがわかります。
左手のコントローラーでFist(グー)のポーズをつけたときにsmileアニメーションが実行されます。これがAvatars2.0のAnimationOverrideでアニメーションを設定していた部分と思ってもらってOKです。
オリオンちゃんでわかる初心者向けAvatars3.0セットアップ|ろーてく|pixivFANBOX
「1. AnimatorControllerでstateに表情アニメーションを割り当てる」と「2. Playable LayersのFXにAnimatorControllerを登録する」は簡単なので一度にやってしまう
サンプルの手の動きに連動するモーションのAnimatorControllerコピペして
https://gyazo.com/809250c48c7b9c5c37edc71c354b3f1c
VRChatのハンドサインは7種類ある。Left Hand/Right Handのそれぞれ(7x2=14 states)にモーション(Animation clip)を割り当ててる
https://gyazo.com/13076efae456b89f1be8dab4a107fabf
対応するAnimationがない場合はproxyのままにして差し支えないです
この通りにproxyを設定した
(が、proxyにも表情が設定されていた気がするので意図しない顔になる可能性があります
応急処置はproxyのコピーを作り、顔関連のシェイプキー指定を外すことです(略)
これは未実施。最終的に使い心地を調整するときにやる必要があるだろう
Avatars 2.0用のアバターを3.0で使う 3.0対応 - 美少年開発研究所
出来上がったAnimatorControllerをVRC Avatar Descriptorにattachする
https://gyazo.com/0cc04fad806f572cc6626fd6b44d378f
これで、ハンドサインを行った際にAnimation clipを再生することができるようになった
VRChat向けアバターの動作確認をすればできることがわかるだろう
大きな課題が残されている。このままではアバターの表情混ざって溶ける問題が発生してしまう。
気づくまで紆余曲折と混乱と迷走があった
基素.icon「モーション割り当てを左手だけにしたら表情が壊れた。顔も半分だけ変。なんで?」
基素.icon「Unityのデフォルトのvrc_AvatarV3HandLayer(デフォルトのproxyアニメーション&Write defaultなし)でも溶けた」
基素.icon「Unity....なんもわからん...」
キッシュちゃんの場合、以下の問題があった
問題1. デフォルトの表情Animation clipが設定されていないためにアバターの表情が溶ける
問題2. Animation clipが最低限の設定なので左右のハンドサインに対応する表情パラメーターが混ざって表情が溶ける
これらに対応していく
問題1. デフォルトの表情Animation clipが設定されていないためにアバターの表情が溶けるに対応する
方針1-1.Write Defaultをつかって、Animation clip再生後に初期位置に戻す
Idleも含めたすべてのWrite Defaultsにチェックを入れます。
これをしないと手を離したときに表情が元に戻りません。
オンにするとバグがあるとの情報もありますが、アップロードしてみて特に困りませんでした。
Avatars 2.0用のアバターを3.0で使う 3.0対応 - 美少年開発研究所
方針1-2. デフォルトの表情を作り、アニメーション再生が終わったらデフォルトの表情で上書きする
どちらの方策でもいけるはずだが、問題2と問題1をごっちゃに考えていたので、方針1-1では問題2が解決しない!と思って方針2を無駄に試してしまった
どちらの方針でも良いだろうが、VRChat公式はWrite Defaults非推奨なので方針1-2をするといいと思う
1-2をした結果(1-1でも同じ結果になるはず)
https://gyazo.com/f0d7d812ea68c56dba28adbe01271cda
Idleからproxyのアニメーションをとっても変わらない
https://gyazo.com/a9b53901cf22177d557392d6a1a4d489
そもそもハンドサインのidleに設定したAnimation clipは再生されない?
(未解決、というかプレイヤー次第)問題2. Animation clipが最低限の設定なので左右のハンドサインに対応する表情パラメーターが混ざって表情が溶けるに対応する
プレイヤーが操作をどうしたいのかによって対応が大きく変わる
VRChatのアバターの表情操作はどういう操作形態がいいのか?
それによってこんな対応がありうる
「左手は口だけ、右手は目だけを動かすと決めて干渉し合わないようにする」
「Right Handsレイヤーの一つ上に、右手表情表示中だけデフォルト顔アニメーションを出すレイヤーを置いておく」
「左右のハンドサインによる表情をひとつのレイヤーにまとめておく」
そもそも何故VRChat Avatars3.0で表情が戻らない現象が起こるのか(およびWrite Defaultsへの呪詛) - プラナリアのメモ
どちらかの手にだけ表情をつける
表情ですべてのパラメータを指定しておく(強制上書き)
有名アバターではどうなっているのかを確認するとよさそうだ
桔梗とかはどうなっているのだろう?
参考文献
2021 Avatars 2.0用のアバターを3.0で使う 3.0対応 - 美少年開発研究所
VRCSDK > Examples3 > Animation > Controllers からvrc_AvatarV3HandsLayerをコピーして使う解説
参考にはしなかったが関連する記事
2020 VRChat Avatars2.0からAvatars3.0へ簡単に移行するためのEditor拡張を作成した - がとーしょこらの技術録(旧)
自動化ツールの使い方解説記事
VRCAvatarEditorを使うという方法もある
@MERU_0001_: 表情の設定 Idleの設定
最初にコピーしたvrc_AvatarV3HandsLayerを編集します
赤色 右と左で別々の表情を入れれます
青色 表情変えるのはここにアニメーションを入れるだけです
緑色 まばたきと表情変更が被らないようにtraking controlを追加し、緑線のように変更します
https://pbs.twimg.com/media/EgVRmS4VAAAwTBa.png
のスレッド
今回tracking controleは意識していなかったが(コピペしたので最初から設定されていた)、ここでマスクするんだな〜
2020.08.09 【VRChat】アバター3.0 移行手順のご紹介! | ケーキのPC情報集会所
Avatars 2.0→3.0移行記事
アニメーションオーバーライドと似たような形で設定できるため、ComboGestureExpressionsを使っている
VRChatのアバターアップロード時に以前のアバターを残す方法
もし以前のversionのアバターを残しておきたい場合は、アップロードするアバターのBlueprintIDをDetachしてからアップロードしましょう。
--.icon
迷走の記録。整理したものが↑の記事なので読む必要はない
方針1-1 Write Defaultでの対応はうまくいかなかった
追記: デフォルトの表情Animation clipが設定されていないためにアバターの表情が溶けるはこれでうまくいったはず。ここでうまくいかなかったと思ったのは左右のハンドサインに対応する表情パラメーターが混ざって表情が溶ける問題に対して
Left/Right hand両方にWrite Defaultを設定した
表情が戻ることが確認できた
困りごと
2. 目をつぶった顔のパターンが2つあり、両方のタイミングが重なると(?)奇妙な顔になってしまう
失敗1:Left handのOpenにWrite Defaultのチェックが漏れていた
左手を変更すると表情が崩れ、右手をOpen handにしなおすと上書きされて直るようになった
https://gyazo.com/42f004da919e6cf3004ec828783fd3c8
原因はおそらくOpenした場合に、パラメータがもとに戻らないので、アバターの表情混ざって溶ける
チェックをつけなおした
失敗2: IdleにWrite Defaultのチェックを入れ忘れた
両方の手を設定した場合にはうまくいくが、片方の手だけ形を変更させた場合にモーフ後に逆側の手の表情になってしまう
https://gyazo.com/a0f657debca65b9e0c2a3e2a643dfccf
左手と右手で優先度がありそう
必ずあとの方のアニメになるわけではない
左手と右手で順番を対象的に操作した場合でも、結果が違う
Idleにもチェックを入れた
Q. 左右の手で表情をつけた時、どの手の順番でどういう表情になるのかわからない
A. Animator ControllerのLayerは上から順に適用される
参考:Left handだけWrite Defaultをいれる→最終的に表情が(ぐちゃぐちゃな状態で)それ以上変わらなくなった
推定原因:右手のパラメーターが戻らないので左右のハンドサインに対応する表情パラメーターが混ざって表情が溶ける
左手を開くと顔が溶ける
キッシュちゃんの表情アニメーションをAvatars 3.0に時代に設定する#62a8aa1d774b170000eb2917のようになる
他にも組み合わせによっては顔が溶けるパターンがある
なぜそうなるのか理解できていない。だから解決できない
Write Default#62a8c473774b17000045a0dcが原因だろうか?
追記:左右のハンドサインに対応する表情パラメーターが混ざって表情が溶けるからであり、これはWrite defautでは直らないし、元のアニメーションを作っても直らない
WriteDefaultではこれ以上解決できないようにおもえたので違う方法を調べた
追記:これは勘違い
参考になりそうな記事を読む
そもそも何故VRChat Avatars3.0で表情が戻らない現象が起こるのか(およびWrite Defaultsへの呪詛) - プラナリアのメモ
Write defaultsを使わないなら、元に戻すアニメーションを作る必要がある
キッシュちゃんにはない
AnimatorControllerは上位レイヤーから順に処理される
左右の表情が変に混ざる原因はたぶんこれ
追記:Yes
対策は人の好みが出そう
「左手は口だけ、右手は目だけを動かすと決めて干渉し合わないようにする」
「Right Handsレイヤーの一つ上に、右手表情表示中だけデフォルト顔アニメーションを出すレイヤーを置いておく」
「左右のハンドサインによる表情をひとつのレイヤーにまとめておく」
といった対策も考えられる。
デフォ表情アニメをLeft Handのidleに入れるのをやめろ………!!!!!!!!!!!
方針1-2. デフォルトの表情を作り、アニメーション再生が終わったらデフォルトの表情で上書きする
キッシュちゃんの表情アニメーションをAvatars 3.0に時代に設定する#62a8b993774b170000c24a0cをやる
そもそも何故VRChat Avatars3.0で表情が戻らない現象が起こるのか(およびWrite Defaultsへの呪詛) - プラナリアのメモで解説されている
初期表情に戻すアニメーションを作る
https://gyazo.com/924c5c2dd5d4cc7db96f1c93dc55faff
(余談)option_heart 1
https://gyazo.com/b6f95bf3ea2b9646358b9183a328ce95
こうした
https://gyazo.com/c6509df2856870dd077bc0245e7f6323 https://gyazo.com/cb007ae89e14fea3cd4dae787973501d
するとこうなる
https://gyazo.com/f0d7d812ea68c56dba28adbe01271cda
Idleからproxyのアニメーションをとっても変わらない
https://gyazo.com/a9b53901cf22177d557392d6a1a4d489
そもそもハンドサインのidleに設定したAnimation clipは再生されない?
プレイヤーの両手や右手(動画で言うアバターの左手)をvictoryにしたとき、正常に表情は動く
しかし、左手victoryにすると別の表情がブレンドされているようにみえる
注意:VRChat内で鏡を見ているので、プレイヤーの左手は映像で言うアバターの右手のこと
もし右手のパラメータが後から上書きされているのだとすると、LeftHandのレイヤーを一番下にしたら挙動が変わるはずだ
やってみたが、かわらなかった
追記:多分Open hand扱いになっていて合成されてしまっている
右手と左手で別のポーズになるものがあった
追記:何を書いているのかわからない。組み合わせによっては正常にいくが(パラメーターが同じケース)、それ以外では別になる
ついてるアニメーションは一緒なので、対象になって欲しい
Right Handの重みを0にしてみる→期待した動作になった
わかった。Left Handの表情とRight Handの表情がBlendされてるんだ
作成したデフォルトはこうした
https://gyazo.com/cb007ae89e14fea3cd4dae787973501d
QuicheのVictoryは最低限のアニメーションのみが指定されている
https://gyazo.com/a61457c7b9b0a52ff18fc66daaada383
つまり、他のアニメーションがついたときに合成される
なぜならアニメーションを発現したときには、こういう順番でパラメータが適用されるから
https://gyazo.com/9dccaba7805f22cd1795373bba777099
アバターの表情混ざって溶けるメカニズムはが理解できた
VRChatのアバターの表情操作はどういう操作形態がいいのかを考えて対策する必要があることがわかった
どちらかの手にだけつけるとか、表情ですべてのパラメータを指定するとかの工夫が必要
有名アバターではどうなっているのかを確認するとよさそうだ
桔梗とかはどうなっているのだろう?